/**
********************************************************************************
@file     test_ut_sllist_static_init.c
@brief    对文件的简要说明
@details  对文件的详细说明
@author   jcai
@date     2024-09-10 19:14:34
@copyright Copyright &copy; 2024 wy1107412334@163.com All rights reserved
@version  v0.0.2

\n Email:  wy1107412334@163.com
\n Blog:   None
\n Github: https://github.com/wy1107412334
\n Gitee:  https://gitee.com/git.git1107412334.com

********************************************************************************
@note
None.
********************************************************************************
@attention
None.
********************************************************************************
@verbatim
@endverbatim
********************************************************************************
@par 修订记录
- jcai, 2024-09-10
  - 交换验证结果函数的 exp 与 act 这两个参数的位置
- jcai, 2024-09-10 19:14:34
  - 首次编写

********************************************************************************
*/

/* 头文件导入区 ------------------------------------------------------------- */

#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include "unit_test.h"


/** @defgroup TEST_UT_SLLIST_STATIC_INIT TEST_UT_SLLIST_STATIC_INIT
@brief test_ut_sllist_static_init modules
@{
*/



/* 宏定义区 ----------------------------------------------------------------- */

#define __FUT__     ut_sllist_static_init


#undef FUT_SETUP_EN
#undef FUT_CLEANUP_EN


/* 数据类型声明区 ----------------------------------------------------------- */

#ifdef FUT_SETUP_EN
static STATUS futSetup(void);
#define FUT_SETUP_FUNC  futSetup
#else
#define FUT_SETUP_FUNC  NULL
#endif

#ifdef FUT_CLEANUP_EN
static void futCleanup(void);
#define FUT_CLEANUP_FUNC    futCleanup
#else
#define FUT_CLEANUP_FUNC    NULL
#endif

UT_FUT_ENTRY(1);
UT_FUT_ENTRY(2);







/* 变量定义区 --------------------------------------------------------------- */


static ut_case_t futCaseTbl[] =
{
    // 注册要测试的用例
    // tcId: 测试用例的id
    // fut_entry: 测试用例的入口函数
    // checkCount: 测试用例中有多少个检查项
    // UT_TEST_CASE_REG(tcId, fut_entry, checkCount),
    UT_TEST_CASE_REG(TC_1, UT_FUT_NAME(1), 1),
    UT_TEST_CASE_REG(TC_2, UT_FUT_NAME(2), 1),
};


// futname: 要测试的函数的名字
//UT_DEFINE_FUT_VARNAME(futname) =
UT_DEFINE_FUT_VARNAME(ut_sllist_static_init) =
{
    UT_FUNC_STR(__FUT__),
    FUT_SETUP_FUNC,
    FUT_CLEANUP_FUNC,
    {0},
    {0},
    futCaseTbl,
    sizeof(futCaseTbl) / sizeof(futCaseTbl[0]),
    0
};







/* 函数定义区 --------------------------------------------------------------- */


#ifdef FUT_SETUP_EN
static STATUS futSetup(void)
{
    return OK;
}
#endif

#ifdef FUT_CLEANUP_EN
static void futCleanup(void)
{
}
#endif








/**
********************************************************************************
@brief    校验链表为空
@details
在链表被初始化后，校验链表是空的
@param    none
@retval  none
@note    none
*/
UT_FUT_ENTRY(1)
{
    UT_SL_LIST sl;

    ut_sllist_static_init(&sl);

    uint32_t exp = 1;
    uint32_t act = ut_sllist_isempty(&sl);

    ut_verify_u32_eq(act, exp, "校验链表为空");
}

/**
********************************************************************************
@brief    校验链表长度为0
@details
在链表被初始化后，校验链表的长度为0
@param    none
@retval  none
@note    none
*/
UT_FUT_ENTRY(2)
{
    UT_SL_LIST sl;

    ut_sllist_static_init(&sl);

    uint32_t exp = 0;
    uint32_t act = ut_sllist_length(&sl);

    ut_verify_u32_eq(act, exp, "校验链表长度为0");
}



/** defgroup TEST_UT_SLLIST_STATIC_INIT
@}
*/


/*********************************** END OF FILE ******************************/
